package com.zy.gmall0401.manage.service.impl;

import com.alibaba.dubbo.config.annotation.Service;
import com.zy.gmall0401.bean.BaseAttrInfo;
import com.zy.gmall0401.bean.BaseAttrValue;
import com.zy.gmall0401.manage.mapper.BaseAttrInfoMapper;
import com.zy.gmall0401.manage.mapper.BaseAttrValueMapper;
import com.zy.gmall0401.service.BaseAttrInfoService;
import org.springframework.beans.factory.annotation.Autowired;
import tk.mybatis.mapper.entity.Example;

import java.util.List;

/**
 * @Author zy
 * @Date 2020/10/27 22:25
 * @Version 1.0
 */
@Service
public class BaseAttrInfoServiceImpl implements BaseAttrInfoService {
    @Autowired
    BaseAttrInfoMapper baseAttrInfoMapper;
    @Autowired
    BaseAttrValueMapper baseAttrValueMapper;

    public List<BaseAttrInfo> getAttrList(String catalog3Id) {
//        Example example = new Example(BaseAttrInfo.class);
//        example.createCriteria().andEqualTo("catalog3Id", catalog3Id);
//        List<BaseAttrInfo> baseAttrInfoList = baseAttrInfoMapper.selectByExample(example);
//
//
//        return baseAttrInfoList;

        Example example = new Example(BaseAttrInfo.class);
        example.createCriteria().andEqualTo("catalog3Id", catalog3Id);
        List<BaseAttrInfo> baseAttrInfos = baseAttrInfoMapper.selectByExample(example);
        return baseAttrInfos;
    }

    @Override
    public void addBaseAttrInfos(BaseAttrInfo baseAttrInfo) {

        if (baseAttrInfo.getId() != null && baseAttrInfo.getId().length() > 0) {
            baseAttrInfoMapper.updateByPrimaryKey(baseAttrInfo);
        } else {

            baseAttrInfoMapper.insertSelective(baseAttrInfo);
        }

        List<BaseAttrValue> attrValueList = baseAttrInfo.getAttrValueList();
        for (BaseAttrValue baseAttrValue : attrValueList) {
            BaseAttrValue baquery = new BaseAttrValue();
            baquery.setValueName(baseAttrValue.getValueName());
            baquery.setAttrId(baseAttrInfo.getId());
            BaseAttrValue baseAttrValue1 = baseAttrValueMapper.selectOne(baquery);
            if (baseAttrValue1 != null) {
                baseAttrValueMapper.updateByPrimaryKey(baseAttrValue);
            } else {
                //获取属性名称的id
                String id = baseAttrInfo.getId();
                //放到属性值表中的id
                baseAttrValue.setAttrId(id);
//           把对象 插入属性值表
                baseAttrValueMapper.insertSelective(baseAttrValue);
            }
        }
    }


}
